// pages/goods_list/index.js
import fetch from '../../request/index'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    tabs: [
      { id: 0, value: '综合', current: true },
      { id: 1, value: '销量', current: false },
      { id: 2, value: '价格', current: false }
    ],
    goodsList: [],
    loadFlag: true
  },
  // 请求参数
  QueryParams: {
    query: '',
    cid: '',
    pagenum: 1,
    pagesize: 10
  },
  // 总页数
  totalPages: 1,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.QueryParams.cid = options.cid
    this.getGoodsList()
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.setData({ goodsList: [], loadFlag: true })
    this.QueryParams.pagenum = 1
    this.getGoodsList()
    wx.stopPullDownRefresh()
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (!this.data.loadFlag) {
      wx.showToast({ title: '客官，没有更多了!', icon: 'none' })
      return
    }
    this.QueryParams.pagenum++
    this.getGoodsList()
  },
  // 获取商品列表事件
  async getGoodsList() {
    // 发起请求
    const res = await fetch({ url: '/goods/search', data: this.QueryParams })
    // 获取总条数
    const total = res.total
    // 总页数
    this.totalPages = Math.ceil(total / this.QueryParams.pagesize)
    const loadFlag = !(this.QueryParams.pagenum >= this.totalPages)
    // 更新数据
    this.setData({
      goodsList: [...this.data.goodsList, ...res.goods],
      loadFlag
    })
  },
  // tabs项切换事件
  handleTabsItemChange(e) {
    // 获取点击索引
    const { index } = e.detail
    // 更改数据
    let { tabs } = this.data
    tabs.forEach((v, i) => (i === index ? (v.current = true) : (v.current = false)))
    // 更新数据
    this.setData({
      tabs
    })
  }
})
